package com.ruoyi.gams.mapper;

import java.util.Date;

import org.apache.ibatis.annotations.Param;

import java.util.List;

import com.ruoyi.gams.domain.GamsDevice;

/**
 * 设备Mapper接口
 *
 * @author ruoyi
 * @date 2021-09-03
 */
public interface GamsDeviceMapper
{
    /**
     * 查询设备
     *
     * @param id 设备主键
     * @return 设备
     */
    public GamsDevice selectGamsDeviceById(Integer id);

    /**
     * 查询设备列表
     *
     * @param gamsDevice 设备
     * @return 设备集合
     */
    public List<GamsDevice> selectGamsDeviceList(GamsDevice gamsDevice);

    /**
     * 新增设备
     *
     * @param gamsDevice 设备
     * @return 结果
     */
    public int insertGamsDevice(GamsDevice gamsDevice);

    /**
     * 修改设备
     *
     * @param gamsDevice 设备
     * @return 结果
     */
    public int updateGamsDevice(GamsDevice gamsDevice);

    /**
     * 删除设备
     *
     * @param id 设备主键
     * @return 结果
     */
    public int deleteGamsDeviceById(Integer id);

    /**
     * 批量删除设备
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGamsDeviceByIds(Integer[] ids);

    GamsDevice findFirstByDeviceId(@Param("deviceId") String deviceId);

    int updateClientKeyByDeviceId(@Param("updatedClientKey") String updatedClientKey, @Param("deviceId") String deviceId);

    int updateHeartTimeByClientKey(@Param("updatedHeartTime") Date updatedHeartTime, @Param("clientKey") String clientKey);

    int updateHeartTimeByDeviceId(@Param("updatedHeartTime") Date updatedHeartTime, @Param("deviceId") String deviceId);

    List<GamsDevice> selectByDepartmentId(@Param("departmentId") Integer departmentId);

}
